Generally, when a device is purchased, such as a computer, audio player, Compact Disc (CD) recorder, etc., certain drivers and/or software is provided to utilize the device. Historically, there has been no way to automatically make use of the combined potential of multiple devices within a particular environment. For example, a user may have, over time, purchased a computer for word processing, a speaker system incident to a game purchase, and a microphone incident to a dictation software purchase. Each of these devices was purchased for a particular purpose, and their associated software is designed for a specific use towards that purpose. However, in theory, these devices, in combination, may be used to implement other devices, such as an Internet telephone, answering system, etc.
Recently, some effort has been made to aggregate existing hardware to present a new device, such as the Internet telephone. Various technologies and protocols are being studied in an effort to build a framework in which such device combinations may be described. For example, the Web Services Description Language (WSDL) may be used to describe service capabilities; Universal Description, Discovery and Integration (UDDI) may be used to enable discovery of networked machines providing certain services (e.g., a services “yellow pages”), Universal Plug and Play (UPNP) may be used to enable identification and facilitate installation of devices attached to a network, etc.
Two particular well-known provisioning services, which may use UPNP or another web service description environment, includes the CableHome™ framework and the Open Service Gateway Initiative (OSGi), both of which are interface specifications defining delivery of services over wide-area networks (WANs) to local area networks (LANs) and devices on the LAN. Unfortunately, while allowing for providing an Internet telephone device as an aggregate of other devices on a LAN, these provisioning services lack flexibility in their ability to provision devices. These services restrict a user on a LAN, such as one connected to the Internet by way of a broadband connection such as a cable modem, XDSL (digital subscriber line) modem, etc., by not involving the user in the provisioning of services that may be applicable to the particular LAN devices. Instead, these provisioning services implement a supervised service “push” framework in which a technician affiliated with the provisioning service is responsible for identifying aggregate abilities that may exist on a LAN, and then pushing/offering services (perhaps exclusively) accordingly.